﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace carsitem.Supplier
{
    public partial class SupplierMaintenanceForm : Form
    {
        //皮肤组件声明
        Sunisoft.IrisSkin.SkinEngine se = null;
        string SkinName = "SteelBlack";

        public SupplierMaintenanceForm()
        {
            InitializeComponent();
            //皮肤组件引用
            se = new Sunisoft.IrisSkin.SkinEngine();
            se.SkinAllForm = true;
            se.SkinFile = "skin/" + SkinName + ".ssk";
        }

        //退出按钮
        private void Eext_Click(object sender, EventArgs e)
        {
            carsitem.MainInterface.MainInterfaceForm mainInterfaceForm = new carsitem.MainInterface.MainInterfaceForm();//把form1传给form2
            mainInterfaceForm.Show();
            this.Hide();//把自己隐藏了
        }

        //修改按钮
        private void Modify_Click(object sender, EventArgs e)
        {
            try//捕捉全空文本框异常
            {
                //sql修改语句
                string sql = string.Format("update Supplier set SupplierName = '{0}', SupplierAddress = '{1}', PhoneNumber = '{2}', Email = '{3}', TheContact = '{4}', BankAccount = '{5}'where SupplierNumber = '{6}'", this.textSupplierName.Text, this.textSupplierAddress.Text, this.textPhoneNumber.Text, this.textEmail.Text, this.textTheContact.Text, this.textBankAccount.Text, this.textSupplierNumber.Text);

                //判断是否成功
                if (DBHelper.Instance().ExcuteSql(sql))
                {
                    MessageBox.Show("修改成功！");

                    //实时更新表格
                    string sql1 = string.Format("select * from supplier");
                    DataTable dt = DBHelper.Instance().GetDataTableBySql(sql1);
                    this.dataGridView1.AutoGenerateColumns = false;
                    this.dataGridView1.DataSource = dt;
                }
                else
                {
                    MessageBox.Show("修改失败！");
                }

                //清除文本框数据
                this.textSupplierNumber.Clear();
                this.textSupplierName.Clear();
                this.textPhoneNumber.Clear();
                this.textTheContact.Clear();
                this.textEmail.Clear();
                this.textBankAccount.Clear();
                this.textSupplierAddress.Clear();
            }
            catch (Exception)
            {
                MessageBox.Show("请输入要修改的数据！");//文本框中无数据弹出
            }
        }

        //删除按钮
        private void Delete_Click(object sender, EventArgs e)
        {
            try//捕捉全空文本框异常
            {
                //sql删除语句
                string sql = string.Format("delete from Supplier where SupplierNumber = '{0}'", this.textSupplierNumber.Text);
                
                //判断是否成功
                if (DBHelper.Instance().ExcuteSql(sql))
                {
                    MessageBox.Show("删除成功！");

                    //实时更新表格
                    string sql2 = string.Format("select * from supplier");
                    DataTable dt = DBHelper.Instance().GetDataTableBySql(sql2);
                    this.dataGridView1.AutoGenerateColumns = false;
                    this.dataGridView1.DataSource = dt;
                }
                else
                {
                    MessageBox.Show("删除失败！");
                }

                //清除文本框数据
                this.textSupplierNumber.Clear();
                this.textSupplierName.Clear();
                this.textPhoneNumber.Clear();
                this.textTheContact.Clear();
                this.textEmail.Clear();
                this.textBankAccount.Clear();
                this.textSupplierAddress.Clear();
            }
            catch (Exception)
            {
                MessageBox.Show("请输入要删除的数据！");//文本框中无数据弹出
            }
        }

        //打开窗口更新表格
        private void SupplierMaintenanceForm_Load(object sender, EventArgs e)
        {
            string sql = string.Format("select * from supplier");
            DataTable dt= DBHelper.Instance().GetDataTableBySql(sql);
            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = dt;
        }

        //数字验证
        public bool IsNumberic(string oText)
        {
            string pattern = @"^\d+(\.\d)?$";
            if (oText != "")
            {
                if (!Regex.IsMatch(oText, pattern))
                    MessageBox.Show("请输入数字！");
            }
            return true;
        }

        //汉字验证
        public bool IsChineseCharacters(string oText)
        {
            string text = @"[\u4E00-\u9FA5]+$";
            if (oText != "")
            {
                if (!Regex.IsMatch(oText.ToString(), text))
                    MessageBox.Show("请输入汉字！");
            }
            return true;
        }

        //非空验证
        public bool Null(string oText)
        {
            if (oText == "")
            {
                MessageBox.Show("必须填写！");
            }
            return true;
        }

        //表单验证
        private void textSupplierNumber_Leave(object sender, EventArgs e)//供商编号
        {
            string oText = textSupplierNumber.Text.Trim();
            IsNumberic(oText);
            Null(oText);
        }

        private void textSupplierName_Leave(object sender, EventArgs e)//供商名称
        {
            string oText = textSupplierName.Text.Trim();
            IsChineseCharacters(oText);
            Null(oText);
        }

        private void textPhoneNumber_Leave(object sender, EventArgs e)//手机号码
        {
            string oText = textPhoneNumber.Text.Trim();
            IsNumberic(oText);
            Null(oText);
            if (textPhoneNumber.Text.Length != 11)
            {
                MessageBox.Show("手机号码为11位！");
            }
        }

        private void textTheContact_Leave(object sender, EventArgs e)//联系人
        {
            string oText = textTheContact.Text.Trim();
            IsChineseCharacters(oText);
            Null(oText);
        }

        private void textEmail_Leave(object sender, EventArgs e)//邮箱
        {
            string str = textEmail.Text.Trim();

            bool boo = new Regex(@"1+@qq.com$").Match(str).Success;

            if (boo == false)
                MessageBox.Show("邮箱格式错误");
        }

        private void textBankAccount_Leave(object sender, EventArgs e)//银行账号
        {
            string oText = textBankAccount.Text.Trim();
            string text = @"[\u4E00-\u9FA5]+$";
            if (oText != "")
            {
                if (Regex.IsMatch(oText.ToString(), text))
                    MessageBox.Show("出现汉字！");
            }
            Null(oText);
        }
    }
}
